const template = require('art-template');
const path = require('path')
const fs = require('fs')
const listModel = require('../model/list')
var jwt = require('jsonwebtoken')

const list = (req, res, next) => {
  // let data = '<ul>'
  // for(var i = 0; i < 50; i++) {
  //   data += `<li>line ${i}</li>`
  // }
  // data += '</ul>'
  // res.send(data)

  // let dataObj = {
  //   ret: true,
  //   data: []
  // }
  // for(var i = 0; i < 50; i++) {
  //   dataObj.data.push('line ' + i)
  // }
  // res.send(dataObj)

  // res.set('Content-Type', 'application/json')
  // res.header('Content-Type', 'text/html') // 默认

  // res.render('list', {
  //   data: JSON.stringify(dataArray)
  // })

  // res.render('list-html', {
  //   data: dataArray
  // })

  // cms
  var html = template(path.join(__dirname, '../views/list-html.art'), {
    data: listModel.dataArray
  });
  fs.writeFileSync(path.join(__dirname, '../public/list-html.html'), html)

  res.send(html)
  // res.send('pages has been complied')
}

const token = (req, res, next) => {
  // 对称加密
  // const tk = jwt.sign({username: 'admin'}, 'hahaha');
  // const decoded = jwt.verify(tk, 'hahaha');
  // res.send(decoded)

  // 非对称加密
  var privateKey = fs.readFileSync(path.join(__dirname, '../keys/rsa_private_key.pem'))
  const tk = jwt.sign({username: 'admin'}, privateKey, { algorithm: 'RS256' })
  var publicKey = fs.readFileSync(path.join(__dirname, '../keys/rsa_public_key.pem'));  // get public key
  const result = jwt.verify(tk, publicKey);
  res.send(result)
}

exports.list = list
exports.token = token
